/**
 * 
 */
package platzerworld.kegeln.wettkampf.db;

/**
 * Schnittstelle zur Tabelle WETTKAMPF. <br>
 * Die Klasse liefert SQL-Code zur Erzeugung der Tabelle SQL-Code für alle für Kegelverwaltung erforderlichen Statements
 * 
 * @author platzerg
 */
public final class WettkampfTbl implements WettkampfColumns {
	private static final long serialVersionUID = 231141692997213358L;

	/**
	 * Name der Datenbanktabelle.
	 */
	public static final String TABLE_NAME = "wettkampf";

	/**
	 * SQL Anweisung zur Schemadefinition.
	 */
	public static final String SQL_CREATE = "CREATE TABLE WETTKAMPF (" +
			"_id   INTEGER PRIMARY KEY AUTOINCREMENT, " +
			"spiel_nr INTEGER, " +
			"heim_id INTEGER, " +
			"gast_id INTEGER, " +
			"klasse_id INTEGER, " +
			"spiel_zeit TEXT, " +
			
			"paarung_1 TEXT, " +
			"paarung_1_ergebnis_heim INTEGER, " +
			"paarung_1_ergebnis_gast INTEGER, " +
			
			"paarung_2 TEXT, " +
			"paarung_2_ergebnis_heim INTEGER, " +
			"paarung_2_ergebnis_gast INTEGER, " +
			
			"paarung_3 TEXT, " +
			"paarung_3_ergebnis_heim INTEGER, " +
			"paarung_3_ergebnis_gast INTEGER, " +
			
			"paarung_4 TEXT, " +
			"paarung_4_ergebnis_heim INTEGER, " +
			"paarung_4_ergebnis_gast INTEGER, " +
			
			"paarung_5 TEXT, " +
			"paarung_5_ergebnis_heim INTEGER, " +
			"paarung_5_ergebnis_gast INTEGER , " +
			
			"paarung_6 TEXT, " +
			"paarung_6_ergebnis_heim, " +
			"paarung_6_ergebnis_gast, " +
			
			"gesamt_ergebnis TEXT);";

	/**
	 * Standard-Sortierreihenfolge f�r die Tabelle. Sortiert wird nach Spielzeit absteigend.
	 */
	public static final String DEFAULT_SORT_ORDER = SPIEL_ZEIT + " DESC";
	
	/**
	 * Sortierreihenfolge f�r die Tabelle. Sortiert wird nach Spielnr absteigend.
	 */
	public static final String ORDER_BY_SPIEL_NR = SPIEL_NR + " DESC";	

	/**
	 * SQL Anweisung zum L�schen der Tabelle.
	 */
	public static final String SQL_DROP = "DROP TABLE IF EXISTS " + TABLE_NAME;

	/**
	 * SQL Anweisung f�r Erzeugung einer Minimal-Mannschaft aus Name und KlasseId.
	 */
	public static final String STMT_MAX_INSERT = "INSERT INTO WETTKAMPF " + "(spiel_nr, heim_id, gast_id, klasse_id, spiel_zeit, " +
			"paarung_1, paarung_1_ergebnis_heim, paarung_1_ergebnis_gast, paarung_2, paarung_2_ergebnis_heim, paarung_2_ergebnis_gast, " +
			"paarung_3, paarung_3_ergebnis_heim, paarung_3_ergebnis_gast, paarung_4, paarung_4_ergebnis_heim, paarung_4_ergebnis_gast, " +
			"paarung_5, paarung_5_ergebnis_heim, paarung_5_ergebnis_gast, gesamt_ergebnis) " 
			+ "VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
	
	/**
	 * SQL Anweisung f�r Erzeugung einer Minimal-Mannschaft aus Name und KlasseId.
	 */
	public static final String STMT_WETTKAMPF_INSERT_ALL_WIDT_ID = "INSERT INTO WETTKAMPF " + "(_id, spiel_nr, heim_id, gast_id, klasse_id, spiel_zeit, " +
			"paarung_1, paarung_1_ergebnis_heim, paarung_1_ergebnis_gast, paarung_2, paarung_2_ergebnis_heim, paarung_2_ergebnis_gast, " +
			"paarung_3, paarung_3_ergebnis_heim, paarung_3_ergebnis_gast, paarung_4, paarung_4_ergebnis_heim, paarung_4_ergebnis_gast, " +
			"paarung_5, paarung_5_ergebnis_heim, paarung_5_ergebnis_gast, paarung_6, paarung_6_ergebnis_heim, paarung_6_ergebnis_gast, gesamt_ergebnis) " 
			+ "VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
	
	

	/**
	 * SQL-Anweisung zum L�schen aller Wettkampfdaten.
	 */
	public static final String STMT_WETTKAMPF_DELETE = "DELETE FROM WETTKAMPF ";
	
	/**
	 * SQL-Anweisung zum L�schen eines Wettkampfes anhand seines Schl�sselwerts.
	 */
	public static final String STMT_WETTKAMPF_DELETE_BY_ID = "DELETE WETTKAMPF " + "WHERE _id = ?";

	/**
	 * SQL-Anweisung zum L�schen eines Wettkampf anhand der Spielnummer.
	 */
	public static final String STMT_WETTKAMPF_DELETE_BY_SPIELE_NR = "DELETE WETTKAMPF WHERE spiel_nr = ?";

	/** Liste aller bekannten Attribute. */
	public static final String[] ALL_COLUMNS = new String[] { ID, SPIEL_NR, HEIM_ID, GAST_ID, KLASSE_ID, SPIEL_ZEIT,
		PAARUNG_1, PAARUNG_1_ERGEBNIS_HEIM, PAARUNG_1_ERGEBNIS_GAST, PAARUNG_2, PAARUNG_2_ERGEBNIS_HEIM, PAARUNG_2_ERGEBNIS_GAST,
		PAARUNG_3, PAARUNG_3_ERGEBNIS_HEIM, PAARUNG_3_ERGEBNIS_GAST, PAARUNG_4, PAARUNG_4_ERGEBNIS_HEIM, PAARUNG_4_ERGEBNIS_GAST,
		PAARUNG_5, PAARUNG_5_ERGEBNIS_HEIM, PAARUNG_5_ERGEBNIS_GAST, PAARUNG_6, PAARUNG_6_ERGEBNIS_HEIM, PAARUNG_6_ERGEBNIS_GAST,
		GESAMT_ERGEBNIS};

	/**
	 * WHERE-Bedingung f�r ID-Anfrage.
	 */
	public static final String WHERE_ID_EQUALS = ID + "=?";
	
	/**
	 * WHERE-Bedingung f�r SPIEL_NR.
	 */
	public static final String WHERE_SPIEL_NR_EQUALS = SPIEL_NR + "=?";
	
	/**
	 * WHERE-Bedingung f�r SPIEL_NR LIKE.
	 */
	public static final String WHERE_SPIEL_NR_LIKE = SPIEL_NR + " LIKE ?";
	

	/**
	 * WHERE-Bedingung f�r SPIEL_ZEIT.
	 */
	public static final String WHERE_SPIEL_ZEIT_EQUALS = SPIEL_ZEIT + "=?";

	/**
	 * Klasse enth�lt nur Konstanten. Daher keine Objekterzeugung vorgesehen.
	 */
	private WettkampfTbl() {
	}
}
